A machine may be configured to perform data compression, data decompression, or both. In some implementations, one machine (e.g., a server machine, which may be part of a server system of multiple machines) performs data compression on an uncompressed data structure and then provides a compressed version of the data structure to another machine (e.g., a client device) that is configured to perform full data decompression on the compressed version of the data structure and thereby reconstruct the uncompressed data structure in its entirety. In some situations, the data structure represents visual elements (e.g., pixels within a two-dimensional rendered image or voxels within a three-dimensional hologram or other three-dimensional rendered volumetric model).